package composite;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.geom.Rectangle2D;
import java.io.Serializable;

/**
 * Composite pattern interface, to access primitive objects and groups in the same way.
 * Primitive objects are in the interpreter package.
 */
public interface ObjectItem extends Serializable{
    public void drawObject(Graphics g);
    public void moveObject(int posX, int posY);
    public ObjectItem clone();
    public Color getColor();
    public void setColor(Color color);
    public Rectangle2D getBoundsRectangle();
    public void drawHighlightSquares(Graphics g);
    public void setSelected(boolean isSelected);
    public boolean isSelected();
    void scale(double scaleX , double scaleY);
    public double getScaleX();
    public double getScaleY();
	public int getPosX();
	public int getPosY();
}